package cn.doit.day02

import org.apache.hadoop.hbase.types.StructIterator

import scala.beans.BeanProperty

object _03_面相对象 {
  def main(args: Array[String]): Unit = {
/*    val person: Person = new Person()//调用的主构造器
    val liuyan: Person = new Person(1, "liuyan", "male")
    val name: String = person.name
    val id: Int = person.id



//    person.id = 2   他底层帮我们写get和set方法的时候，取名字很奇怪  getName  =》 name    setName =》 name=
    person.name = "zss"
    println(name)
    println(id)
    println(person.name)*/

    //显示得指定，你这个参数是传给谁得
    val person1: Person = new Person(age = 48,name = "小马")


    def add(a:Int = 10,b:String)={
      a+b.toInt
    }

    add(b = "20")



  }

}
//构造方法 和 类交织在一起
class Person(val name:String, val phoneNum:String = "110",val age:Int){//主构造器
/*  @BeanProperty //会拥有get和set方法
  var id:Int = 1
  @BeanProperty
  var name:String ="zss"
  @BeanProperty
  var gender:String = "male"
/*  //定义成员属性的时候，必须赋值
  val id:Int = 1
  //如果是var修饰的，可以用_ 来占位
  var name:String = _
  val plus = (a:Int,b:Int)=>{a+b}*/

  //get 和 set
  //辅助构造器
  def this(id:Int,name:String,gender:String){//辅助构造器可以有方法的重载
    //所有的辅助构造器必须在第一行调用主构造器或者其他的辅助构造器
    this()
    this.id = id
    this.name = name
    this.gender = gender

  }*/
}
